/* 
 * File:   main.cpp
 * Author: Maximiliano Monzon (pd 82341)
 *
 * Created on October 19, 2012, 9:29 PM
 */

#include <cstdlib>
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include "client_Cliente.h"
#include "client_Trabajo.h"
#include "client_Trabajador.h"

using namespace std;
using namespace TP::Criptografia;
using namespace TP::Comunicacion;

#define SUCCESS_EXIT 0
#define CONNECTION_FAILED 1
#define INVALID_SERVICE_REFERENCE 2
#define INVALID_ARGS 3

int main(int argc, char** argv) {
    
    
    int val = SUCCESS_EXIT;
    
    try
    {
        // Verifico la cantidad de parametros de la aplicacion.
        if (argc != 2)
            throw INVALID_ARGS;

        // Interpreto la referencia al servicio de los parametros.
        string item = "";
        vector<string> comando;
        std::stringstream ss (argv[1]);

        while (std::getline(ss, item, ':' ))
            comando.push_back(item);

        if (comando.size() != 2)
            throw INVALID_SERVICE_REFERENCE;
        
        Trabajador trabajador;
        trabajador.trabajar(comando[0], comando[1], cerr);

    }
    catch (Excepcion& pEx)
    {
        cerr << pEx.what() << endl;
        val = CONNECTION_FAILED;
    }
    catch (int pEx)
    {
        val = pEx;
    }

    return val;
}

